/*
 * parse.c
 *
 *  Created on: 12/mar/2014
 *      Author: massimo
 */

#include "init.h"
#include "motor.h"


extern unsigned char spiBuffer[], TX_PTR, RX_PTR;
///
/// controlla comandi arrivati sulla SPI
void receiveCommand(){

	unsigned char stato, comando;
	//if (TX_PTR != RX_PTR){
		comando = spiBuffer[RX_PTR];
		/// arrivato un dato lo gira al motore
		RX_PTR++;
		/// il bus e' ancora I2C e quindi occorre cambiare indirizzo.
    	initI2C_B1(FDCO, 200000, MOTOR_ADDR);
/*
#define		MOTOR_ADDR			0x04
#define		MOTOR_A_STOP		0
#define 	MOTOR_B_STOP		0
#define		MOTOR_A_LOW			0x1
#define		MOTOR_B_LOW			0x4
#define		MOTOR_A_MEDIUM		0x2
#define		MOTOR_B_MEDIUM		0x8
#define 	MOTOR_A_HIGH		0x3
#define 	MOTOR_B_HIGH		0xC
#define		DIR_A_UP			0x10
#define		DIR_B_UP			0x20
*/
    	/*comando = MOTOR_A_LOW + DIR_A_UP;*/
    	stato =  writeI2CSingleByte(comando);
    	/*comando = (MOTOR_B_LOW + DIR_B_UP);
    	stato =  writeI2CSingleByte(comando);*/

    	RX_PTR &= 0x3;
	//}

}


void caricaVettore(){

	spiBuffer[0] = 0;
	spiBuffer[1] = MOTOR_A_LOW + DIR_A_UP + MOTOR_B_LOW + DIR_B_UP;

	spiBuffer[2] = MOTOR_A_MEDIUM + DIR_A_UP + MOTOR_B_MEDIUM + DIR_B_UP;
	spiBuffer[3] = MOTOR_A_STOP + DIR_A_UP + MOTOR_B_STOP + DIR_B_UP;
}
